#include <iostream>
#include <cmath>
#include <iomanip>

#define oo 1000000000
#define pi 3.14159

using namespace std;

struct point {
	double x, y;
};

int n;
point p[100], q[100];
double angle[100];

double minA, maxA;
double minX, maxX, minY, maxY, maxAlpha;

int main()
{
	int ntest = 0;
	cout.precision(3);

	while (cin >> n)
	{
		if (n == 0) break;
		minA = oo;
		maxA = -oo;

		minX = oo;
		minY = oo;
		for (int i = 0; i < n; i++)
		{
			cin >> p[i].x >> p[i].y;
			minX = min(minX, p[i].x);
			minY = min(minY, p[i].y);
		}

		for (int i = 0; i < n; i++)
		{
			p[i].x = p[i].x - minX;
			p[i].y = p[i].y - minY;
			
			if (p[i].x == 0) 
			{
				if (p[i].y == )) angle[i] = 0;
				else angle[i] = pi/2;
			}
			else angle[i] = atan(p[i].y/p[i].x);

			cout << p[i].x << " " << p[i].y << " " << angle[i] << endl;
		}

		for (double theta = 0.0; theta <= pi/2; theta += 0.01)
		{
			minX = oo;
			minY = oo;
			maxX = -oo;
			maxY = -oo;

			for (int i = 0; i < n; i++) 	
			{
				q[i].x = p[i].x * abs(cos(angle[i] + theta)) / cos(angle[i]);
				q[i].y = p[i].y * sin(angle[i] + theta) / sin(angle[i]);

				minX = min(minX, q[i].x);
				minY = min(minY, q[i].y);
				maxX = max(maxX, q[i].x);
				maxY = max(maxY, q[i].y);
			}

			double S = (maxX - minX) * (maxY - minY);
			minA = min(minA, S);
			maxA = max(maxA, S);

			cout << theta << " " << S << endl;
		}

		cout << "Gift " << ++ntest << endl;
		cout << "Minimum area = " << minA << endl;
		cout << "Maximum area = " << maxA << endl << endl;
	}
	return 0;
}
